// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const { code } = event

  try {
    console.log('检查用户状态云函数开始执行...')
    
    // 获取openid
    const openid = wxContext.OPENID
    console.log('查询OpenID:', openid)

    if (!openid) {
      return {
        success: false,
        exists: false,
        data: null,
        message: 'OpenID获取失败'
      }
    }

    // 查询用户是否存在
    const userQuery = await db.collection('users').where({
      _openid: openid,
      status: 1 // 只查询状态正常的用户
    }).get()

    if (userQuery.data.length > 0) {
      const userData = userQuery.data[0]
      
      // 更新最后登录时间
      await db.collection('users').doc(userData._id).update({
        data: {
          lastLoginAt: new Date()
        }
      })

      // 获取会员等级信息
      try {
        const memberLevelQuery = await db.collection('member_levels').where({
          level: userData.memberLevel
        }).get()

        if (memberLevelQuery.data.length > 0) {
          userData.memberLevelInfo = memberLevelQuery.data[0]
        }
      } catch (levelError) {
        console.warn('获取会员等级信息失败:', levelError)
      }

      console.log('用户存在，返回用户信息')
      return {
        success: true,
        exists: true,
        data: userData,
        message: '用户验证成功'
      }
    } else {
      console.log('用户不存在')
      return {
        success: true,
        exists: false,
        data: null,
        message: '用户不存在'
      }
    }

  } catch (error) {
    console.error('检查用户状态失败:', error)
    return {
      success: false,
      exists: false,
      data: null,
      message: error.message || '检查用户状态失败'
    }
  }
}